<?php
// to test
// var_dump($_POST['dateN']);
// end test
if(isset($_POST)){
	$erreur = false;
	$pseudo = (!empty($_POST['pseudo'])) ? $_POST['pseudo'] : "";
	$mail = (!empty($_POST['mail'])) ? $_POST['mail'] : "";
	$public = (!empty($_POST['mail'])) ? true : false;
	$prenom = (!empty($_POST['prenom'])) ? $_POST['prenom'] : "";
	$email = (!empty($_POST['email'])) ? $_POST['email'] : "";
	$sexe = (!empty($_POST['sexe'])) ? $_POST['sexe'] : "";
	$mdp = (!empty($_POST['password'])) ? sha1($_POST['password']) : "";
	$confirm = (!empty($_POST['confirm_mdp'])) ? sha1($_POST['confirm_mdp']) : "";
	$date_de_naissance = (!empty($_POST['dateN'][0]) &&!empty($_POST['dateN'][1]) &&!empty($_POST['dateN'][2])) ? ($_POST['dateN'][0]."/".$_POST['dateN'][1]."/".$_POST['dateN'][2]):"";
	$recaptcha_challenge_field = (isset($_POST['recaptcha_challenge_field'])) ? $_POST['recaptcha_challenge_field'] : "";
	$recaptcha_response_field = (isset($_POST['recaptcha_response_field'])) ? $_POST['recaptcha_response_field']  : "";
	$membre_situation = (!empty($_POST['situation'][1]))?($_POST['situation'][1]." ".$_POST['situation'][2]) :"";
	$sante = (isset($_POST['sante'])?$_POST['sante']:"");
	$localisation = (isset($_POST['localisation'])?$_POST['localisation']:"");
	$newsletter = (isset($_POST['newsletter'])?1:0);
}
$i = 0;

 
function SigneZodiaque($dateJours, $dateMois)
{
	$signe = array('Verseau','Poissons','Bélier','Taureaux','Gémaux','Cancer','Lion','Vierge','Balance','Scorpion','Sagitaire','Capricorne');
	$periode = array(20,19,21,20,20,22,23,23,23,23,22,21);
	 
	$zodiaque = (--$dateMois);

	// zodiaque 
	if($dateJours >= $periode[$dateMois])
	{
		//$zodiaque = $dateMoisNaissance;
	}
	else
	{
	  
	  if($dateMois == 0) { $zodiaque = 11; } 
	  else {$zodiaque=(--$dateMois);}
	}

return $signe[$zodiaque];
}
 
	if($mail == "non")
	{
		$mc = 0;
	}
	if($mail!= "oui")
	{
		$mc = 1;
	}
	if($sante == "valide")
	{
		$mc = 0;
	}
	if($sante!= "handicaper")
	{
		$mc = 1;
	}
	
	require_once(DIR_INCLUDE . '/form.inc.php');
	require_once(DIR_INCLUDE . '/recaptchalib.php');//ne fonctionne pas avec la securité socket du serveur
	require_once(DIR_INCLUDE . '/classes/Captcha.class.php');//Class de secour basic en attendant
	require_once(DIR_INCLUDE . '/pdo.inc.php');
		
	//On modifie le titre de la page
		setPageTitle('Inscription au site', true);
	//On modifie les personnes qui peuvent voir cette page
		auth(VISITEUR,true,true);//Les visiteurs seulement peuvent voir cette page
 	//$capInfoxp = new Captcha(5);
	
	//$capInfoxp->setTable(array("+"));
?>

<script type="application/javascript">
		var RecaptchaOptions = { theme : 'custom', custom_theme_widget: 'recaptcha_widget', lang : 'fr' };
</script>

<?php
	if(count($_POST)<2)
	{

?>

<?php

    echo $_tab['inscription'].'';

	include "./modules/membre/inscription/index.php";
?>

<?php	  
} 
	else //traitement de la soumission du formulaire
	{
		
		$j=0;
		$textErreur = array();
		//On récupère les variables
		$temps = time(); 
		$query=$pdo->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_pseudo =:pseudo');
		$query->execute(array("pseudo"=>$pseudo));
		$data = $query->fetch(PDO::FETCH_ASSOC);
		
		saveInputValue($_POST);
		
		$pseudo_free=$data["nbr"];
		$query->closeCursor();
					
		if($pseudo_free and $pseudo!="")
		{
			$textErreur["pseudo_used"] = "Votre pseudo est déjà utilisé par un membre";
			$j++;
		}
	 
		elseif (strlen($pseudo) < 3 || strlen($pseudo) > 15)
		{
			$textErreur["pseudo_len"] = "Votre pseudo est soit trop grand, soit trop petit";
			$j++;
		}
				 
		//Vérification du mdp
		if ($mdp != $confirm || ($mdp=="" || $confirm==""))
		{
			$textErreur["mdp"] = "Votre mot de passe et votre confirmation diffèrent, ou sont vides";
			$j++;
		}
 
//Vérification de l'adresse email
 
    //Il faut que l'adresse email n'ait jamais été utilisée
    $query=$pdo->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail');
    $query->bindValue(':mail',$email, PDO::PARAM_STR);
	$query->execute();
	$data = $query->fetch(PDO::FETCH_ASSOC);						
    $mail_free=$data["nbr"];
    $query->CloseCursor();
 
	if($mail_free and $email != "")
	{
		$textErreur["email_used"] = "Votre adresse email est déjà utilisé par un membre";
		$j++;
	}
	//On vérifie la forme maintenant
	elseif (!preg_match("#^[a-zA-Z0-9._-]+[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
	{
		$textErreur["email_format"] = "Votre adresse E-Mail n'a pas un format valide";
		$j++;
	}
	

	
	
if(!$sexe)
{
	$textErreur["sexe"] = "Vous devez choisir votre sexe !";
	$j++;
}
	
	if(!$prenom)
	{
		$textErreur["prenom"] = "Vous devez mettre votre prénom";
		$j++;
	}

   /* // on vérifie si le captcha est bon 
    $privatekey = "6LdiAskSAAAAACtuBwMoKnSGe-ZDKRSR67X_jZy8";
    $resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $recaptcha_challenge_field,
                              $recaptcha_response_field); */ 
		$capInfoxp = unserialize($_SESSION['captcha_lib']);							
	if ($capInfoxp->checking($recaptcha_response_field)===Captcha::INVALID_CODE)
	{
		// Le captcha EST INVALIDE !!
			$textErreur["captcha"] = "Le captcha entré est invalide !";
			$j++;
	}
	
	if(empty($date_de_naissance))
	{
		$textErreur["dateNaissance"] = "Vous devez mettre votre date de naissance !";
		$j++;
	}
	
	
	if ($j==0)
   	{
		
		/* AVATAR on inscription deprecated - zulad - Reason : vulnerability
			$avatarName = '';
	//Vérification de l'avatar :
    if(isset($_FILES['avatar']))
    {
    	
		
        $avatarName = basename($_FILES['avatar']['name']);
        $target = "avatar/".$avatarName ;

echo '<script>alert("'.$avatarName.'")</script>';

        $avatarSize = getimagesize($_FILES['avatar']['tmp_name']);
        $extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));

        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );

        if($avatarSize[0]>500 || $avatarSize[1]>500)
        {
            $isImageValid = false;
            $messageImage = 'Votre image fait plus de 500 sur 500'; 
        }
        if(!in_array($extension_upload,$extensions_valides))
        {
            $isImageValid = false;
            $messageImage .= 'Votre extension d\'image n\'est pas acceptée'; 
        }

        move_uploaded_file($_FILES['avatar']['tmp_name'],$target);
    }
		*/
		
		echo'<h1>Inscription terminée</h1>';
		echo 'Bienvenue '.stripslashes(htmlspecialchars($pseudo)).', vous êtes maintenant inscrit sur le forum, mais pour terminer votre inscription, nous avons mis un système de verification de mail.Un lien vous à été envoyé afin d\'activer votre compte et de valider votre email !
		Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil
		<a href="http://leprojet.legtux.org/mail-mail.action.html?action=memberVlink" >Je n\'ai pas reçu mon lien d\'activation pour ce compte</a>';

				$sql = 'INSERT INTO forum_membres
					(membre_public, membre_pseudo, membre_mdp, membre_email,  membre_prenom, membre_sexe, membre_sante, membre_date_de_naissance, membre_zodiaque, membre_situation, membre_departement, membre_newsletter, membre_clef, membre_inscrit )
					VALUES (:public, :pseudo, :pass, :email, :prenom, :sexe, :membre_sante, :date_de_naissance, :membre_zodiaque, :membre_situation, :localisation, :membre_newsletter, :membre_clef, :membre_inscrit)';
	 
				$query=$pdo->prepare($sql);
				$query->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
				$query->bindValue(':pass', $mdp, PDO::PARAM_INT);
				$query->bindValue(':email', $email, PDO::PARAM_STR);
				$query->bindValue(':prenom', $prenom, PDO::PARAM_STR);
				$query->bindValue(':sexe', $sexe, PDO::PARAM_STR);
				$query->bindValue(':public', $public, PDO::PARAM_BOOL);
				//$query->bindValue(':membre_avatar', $avatarName, PDO::PARAM_STR);
				$query->bindValue(':membre_sante', $sante, PDO::PARAM_STR);
				$query->bindValue(':membre_situation', $membre_situation, PDO::PARAM_STR);
				
				$date_de_naissance = "";
				$clef = md5($pseudo);
				
				/* by Infoxp */
				foreach($_POST["dateN"] as $k=>$v)
				{
					if($k<count($_POST["dateN"]) && $k > 0)
					$date_de_naissance .= "/";
				
						$date_de_naissance .= $v;
				}
				// utilisation
				
				$query->bindValue(':date_de_naissance', $date_de_naissance, PDO::PARAM_STR);
				$query->bindValue(':membre_zodiaque', SigneZodiaque($_POST['dateN'][0],$_POST['dateN'][1]), PDO::PARAM_STR);
				$query->bindValue(':localisation', $localisation, PDO::PARAM_STR);
				$query->bindValue(':membre_newsletter', $newsletter, PDO::PARAM_STR);
				$query->bindValue(':membre_clef', $clef, PDO::PARAM_STR);
				$query->bindValue(':membre_inscrit', time());
				
				$query->execute();
				
				$lastId = $pdo->lastInsertId(); 

				$query->CloseCursor();

				// forum_mp_conf
				$sql = 'INSERT INTO forum_mp_conf (id,id_user,limit_msg,timestamp) VALUES(:id,:id_user,:limit_msg,:timestamp)';
	 
				$query=$pdo->prepare($sql);
				$query->bindValue(':id', null);
				$query->bindValue(':id_user', $lastId);
				$query->bindValue(':limit_msg', 30);
				$query->bindValue(':timestamp', "");
				$query->execute();
				$query->CloseCursor();
				
				// calendrier
				/*$sql = 'INSERT INTO calendrier (id_calendrier, jour_evenement,mois_evenement,annee_evenement,id_evenement,add_by) VALUES(:id_calendrier,:jour_evenement ,:mois_evenement,:annee_evenement,:id_evenement,:add_by)';
				$query=$pdo->prepare($sql);
				$query->bindValue(':id_calendrier', null);
				$query->bindValue(':jour_evenement', $_POST["dateN"][2]);
				$query->bindValue(':mois_evenement', $_POST["dateN"][1]);
				$query->bindValue(':annee_evenement', 0);
				$query->bindValue(':id_evenement', "");
				$query->bindValue(':add_by', "");
				$query->execute();
				$query->CloseCursor();*/
				
				// evenements
				/*$sql = 'INSERT INTO evenements (id_evenement,titre_evenement,contenu_evenement) VALUES(:id_evenement,:titre_evenement,:contenu_evenement)';
				$query=$pdo->prepare($sql);
				$query->bindValue(':id_evenement', null);
				$query->bindValue(':titre_evenement', "Anniversaire de ".$pseudo);
				$query->bindValue(':contenu_evenement', "");
				$query->execute();
				$query->CloseCursor();*/
				//deleteInputSaved();
				//
				//$id_event = rand(0,47895623);
							
				//Variable à changer si le nom de la variable n'est pas correcte
				$sujet = 'Activez votre compte le projet‏';
				$message = "
				<div style=\"margin-left:1%; margin-right:1%; border:1% solid; background-color:#666666; color:#000000\">
				<div style=\"margin-left:1%; margin-right:1%; background-color:#666666; border:1px solid;\">
				le projet
				</div>
				<div style=\"margin-left:1%; margin-right:1%; background-color:#666666; border:1px solid;\">
				Bonjour et Bienvenue ".sex2color(2,pseudo2id($pseudo)).", sur le site du projet !
				<div style=\"margin-left:30%; margin-right:30%; border:1px solid; background-color:#666666;\">
				Pour activer vore compte : <a href=\"http://leprojet.legtux.org/".getLienModule("membre","register.validate")."?key=$clef&uid=".pseudo2id($pseudo)."\">cliquez ici </a>
				</div>
				Rappel de vos informations pour se connecter
				
				Pseudo : ".sex2color(2,pseudo2id($pseudo))."
				
				Mot de passe : ".($_POST['password'])."
				
				votre mail : ".($_POST['email'])."
				
				</div>
				<div style=\"margin-left:1%; margin-right:1%; background-color:#666666; border:1px solid;\">
				Nous vous remercions de votre confiance et d'avoir choisir notre site.
				
				<div style=\"color:#00FF00\">
				Pour votre première inscription à notre site, on vous offre 500 Bonus.
				</div>
				
				Merci de ne pas répondre à cet email, votre réponse ne sera pas traitée. Pour toutes questions, contactez-nous à partir du site web http://leprojet.legtux.org.
				</div>
				</div>
				</div>";
				// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
				
				/* deprecated - zulad 
     $mail = new Mail(); 
	 $mail->setTo($_POST['email'])
	  	  ->setSubject($sujet)
	 	  ->setMessage($message)
		  ->setHeader(HeaderMail::MailHTML("leprojet@legtux.org"))
		  ->send();
			
				*/
				mail($_POST['email'],$sujet,$message,HeaderMail::MailHTML("leprojet@legtux.org"));
				
	}
    else
    {
		echo'<h1>Inscription interrompue</h1>';
		echo'<br>Une ou plusieurs erreurs se sont produites pendant l\'incription<br>';
		echo'<br>'. $j .' erreur(s)';
			
		/* Partie modifier par infoxp
			toutes les variables ont été remplacé par un array
		*/
		
		//Listage de toutes les erreurs eventuel contenue dans un array
			foreach($textErreur as $formError)
			{
				echo $formError;
			}
 
        echo'<p>Cliquez <a href="javascript:void(0);" onclick="history.back();">ici</a> pour recommencer</p>';
        
    }
}
 
?>
